Device power monitoring and optimization

ABSTRACT

One embodiment provides a method, including: obtaining, using a processor, a system power consumption metric; determining, using a processor, a change in the system power consumption metric over time; obtaining, using a processor, system change data; associating, using a processor, the change in the system power consumption metric and the system change data; and indicating, using an output device, a system change associated with the change in the system power consumption metric. Other aspects are described and claimed.

BACKGROUND

Devices such as desktops, laptops, tablet computing devices, mobilephones or smart phones, e-readers, and the like provide users withconvenient functionality. Users are increasingly interested in devicesthat are efficient in terms of power consumption. This interest may stemfrom a variety of concerns, e.g., conserving battery power in a mobiledevice, conserving electricity consumption in devices generally, etc.

Many users find that the devices they use, when new or differentsoftware applications are installed or turned on, when new or differenthardware devices are connected or running, etc., consume the device'spower differently. Often, the user will notice that the battery seems tobe discharging at a higher rate or that the device is heating up, usingmore electric power (and thus costing more to run), etc. Although theuser may notice these effects, their root case is often illusory.

BRIEF SUMMARY

In summary, one aspect provides a method, comprising: obtaining, using aprocessor, a system power consumption metric; determining, using aprocessor, a change in the system power consumption metric over time;obtaining, using a processor, system change data; associating, using aprocessor, the change in the system power consumption metric and thesystem change data; and indicating, using an output device, a systemchange associated with the change in the system power consumptionmetric.

Another aspect provides a device, comprising: a processor; a memorydevice that stores instructions executable by the processor to: obtain asystem power consumption metric; determine a change in the system powerconsumption metric over time; obtain system change data; associate thechange in the system power consumption metric and the system changedata; and indicate a system change associated with the change in thesystem power consumption metric.

A further aspect provides a product, comprising: a storage device havingcode stored therewith, the code being executable by a processor andcomprising: code that obtains a system power consumption metric; codethat determines a change in the system power consumption metric overtime; code that obtains system change data; code that associates thechange in the system power consumption metric and the system changedata; and code that indicates a system change associated with the changein the system power consumption metric.

The foregoing is a summary and thus may contain simplifications,generalizations, and omissions of detail; consequently, those skilled inthe art will appreciate that the summary is illustrative only and is notintended to be in any way limiting.

For a better understanding of the embodiments, together with other andfurther features and advantages thereof, reference is made to thefollowing description, taken in conjunction with the accompanyingdrawings. The scope of the invention will be pointed out in the appendedclaims.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 illustrates an example of information handling device circuitry.

FIG. 2 illustrates another example of information handling devicecircuitry.

FIG. 3 illustrates an example method of monitoring and optimizing systempower consumption.

DETAILED DESCRIPTION

It will be readily understood that the components of the embodiments, asgenerally described and illustrated in the figures herein, may bearranged and designed in a wide variety of different configurations inaddition to the described example embodiments. Thus, the following moredetailed description of the example embodiments, as represented in thefigures, is not intended to limit the scope of the embodiments, asclaimed, but is merely representative of example embodiments.

Reference throughout this specification to “one embodiment” or “anembodiment” (or the like) means that a particular feature, structure, orcharacteristic described in connection with the embodiment is includedin at least one embodiment. Thus, the appearance of the phrases “in oneembodiment” or “in an embodiment” or the like in various placesthroughout this specification are not necessarily all referring to thesame embodiment.

Furthermore, the described features, structures, or characteristics maybe combined in any suitable manner in one or more embodiments. In thefollowing description, numerous specific details are provided to give athorough understanding of embodiments. One skilled in the relevant artwill recognize, however, that the various embodiments can be practicedwithout one or more of the specific details, or with other methods,components, materials, et cetera. In other instances, well knownstructures, materials, or operations are not shown or described indetail to avoid obfuscation.

Over time, devices experience changes in power consumption, e.g., adevice's battery seems to drain more quickly, a device running onwall/commercial power may consume more electricity, etc. There can bemany causes of a change in device power consumption. For example, achange in power consumption may be due to a growing number ofapplications being installed and running on the device, hardwareperformance issues (e.g., added hardware that consumes power, conflictswith stock device hardware or software, etc.). Currently, the user mayattempt to manage the system's power consumption manually, e.g.,force-stop applications, etc., or via a software tool that implementscertain power profiles. However, users often do not have the expertiseto do this management properly. In addition, the power profiles are nottargeted to a specific machine the user is operating, and even if so,such tools are directed to a static template of power settings.

Accordingly, an embodiment gathers or monitors data regarding systempower consumption and system changes. An embodiment determines whencertain operations occur and correlates the power usage associated withthose operations with changes in the system. A system may be a deviceitself or a sub-system of a device. System power consumptionmeasurements may include data such as Disk I/O activity, operatingsystem (OS) or device startup, the opening an application, anapplication running in the background, hardware's or an accessory'spower usage, etc. User actions such as adding hardware, installing ormodifying applications, copying or moving files, installing OS orapplication updates, modifying OS settings, etc., may also be monitored,e.g., recorded along with a timestamp, so that these operations may becorrelated against power usage statistics.

When each operation occurs, an embodiment may compare the operation'spower usage with previous measurements. When an operation's power usagegoes up (that is, more power is required for the same task oroperation), an embodiment may bring this to the user's attention.

Power usage also may be impacted by a single application running,multiple applications running in a particular combination or sequence,an application or hardware operating in combination or sequence, ormultiple hardware operations interacting. If these interactions, orpatterns thereof, are monitored, these may be interpreted such thatpower performance impacts of such patterns may be noted and used toimprove power consumption. For example, using recorded historical data,such operations or patterns thereof may be presented to the user so thatthe user is aware of the power consumption impact of performing theoperation or operations. For example, an embodiment may monitor anddetermine that if Device A is used at the same time as Device B, thecombination of these devices operating at the same time has asynergistic and negative impact on system power consumption. Incontrast, each device individually may be operated at less power thanthe combination of devices. An embodiment may notify a user of thisfact, e.g., prior to or during combined operation of the devices, suchthat the user may operate the devices separately if power savings isdesirable.

An embodiment may provide recommendations to the user for managing powerconsumption given the availability of data regarding changes in powerconsumption and power usage statistics for particular applications andcomponents. For example, an embodiment may notify a user that a certainattached hardware is increasing power usage. An embodiment may querywhether the user wishes to continue using that particular hardware givenits impact on power consumption. An embodiment likewise may notify auser that a piece of software has increased power usage since it wasinstalled. As another example, an embodiment may notify a user when anOS or software setting has changed and resulted in increased powerusage. An embodiment also may notify a user that running an applicationin the background consumes a certain amount of power, such that arecommendation is made that the application be turned off rather thaninstalled. An embodiment may notify a user that when the user copies alarge number of files to a drive, which causes an application toread/parse the files, a certain amount of power is utilized.

The notification may include, for example, a recommendation, e.g., todisable or uninstall the application, to move files elsewhere, or removethe files. An embodiment may additional provide the recommendation inadvance of the operation. For example, prior to installing anapplication, an embodiment may notify the user of the application'stypical power consumption, e.g., based on knowledge gathered from otherdevices.

Many different types of analyses may be conducted with respect to notinga power consumption change and making a recommendation. For example, anembodiment may compare disk power usage over a short or long period oftime and compare it to what the disk firmware reports should be typicalpower usage for that specific disk. This may permit a recommendationregarding the continued use of the disk, e.g., that the disk should bescanned or analyzed further in an effort to identify why the disk'spower consumption has changed.

Additionally, an embodiment may notify a user when power consumptionchanges in a positive way. For example, a user may be notified that whenthey set a particular application setting to a new setting, and this newsetting saves a certain amount of power. This makes the user aware thatthe user has made a positive change to the system in terms of powerconsumption.

The illustrated example embodiments will be best understood by referenceto the figures. The following description is intended only by way ofexample, and simply illustrates certain example embodiments.

While various other circuits, circuitry or components may be utilized ininformation handling devices, with regard to smart phone and/or tabletcircuitry 100, an example illustrated in FIG. 1 includes a system on achip design found for example in tablet or other mobile computingplatforms. Software and processor(s) are combined in a single chip 110.Processors comprise internal arithmetic units, registers, cache memory,busses, I/O ports, etc., as is well known in the art. Internal bussesand the like depend on different vendors, but essentially all theperipheral devices (120) may attach to a single chip 110. The circuitry100 combines the processor, memory control, and I/O controller hub allinto a single chip 110. Also, systems 100 of this type do not typicallyuse SATA or PCI or LPC. Common interfaces, for example, include SDIO andI2C.

There are power management chip(s) 130, e.g., a battery management unit,BMU, which manage power as supplied, for example, via a rechargeablebattery 140, which may be recharged by a connection to a power source(not shown). In at least one design, a single chip, such as 110, is usedto supply BIOS like functionality and DRAM memory.

System 100 typically includes one or more of a WWAN transceiver 150 anda WLAN transceiver 160 for connecting to various networks, such astelecommunications networks and wireless Internet devices, e.g., accesspoints. Additionally, devices 120 are commonly included. System 100often includes a touch screen 170 for data input and display/rendering.System 100 also typically includes various memory devices, for exampleflash memory 180 and SDRAM 190.

FIG. 2 depicts a block diagram of another example of informationhandling device circuits, circuitry or components. The example depictedin FIG. 2 may correspond to computing systems such as the THINKPADseries of personal computers sold by Lenovo (US) Inc. of Morrisville,N.C., or other devices. As is apparent from the description herein,embodiments may include other features or only some of the features ofthe example illustrated in FIG. 2.

The example of FIG. 2 includes a so-called chipset 210 (a group ofintegrated circuits, or chips, that work together, chipsets) with anarchitecture that may vary depending on manufacturer (for example,INTEL, AMD, ARM, etc.). INTEL is a registered trademark of IntelCorporation in the United States and other countries. AMD is aregistered trademark of Advanced Micro Devices, Inc. in the UnitedStates and other countries. ARM is an unregistered trademark of ARMHoldings plc in the United States and other countries. The architectureof the chipset 210 includes a core and memory control group 220 and anI/O controller hub 250 that exchanges information (for example, data,signals, commands, etc.) via a direct management interface (DMI) 242 ora link controller 244. In FIG. 2, the DMI 242 is a chip-to-chipinterface (sometimes referred to as being a link between a “northbridge”and a “southbridge”). The core and memory control group 220 include oneor more processors 222 (for example, single or multi-core) and a memorycontroller hub 226 that exchange information via a front side bus (FSB)224; noting that components of the group 220 may be integrated in a chipthat supplants the conventional “northbridge” style architecture. One ormore processors 222 comprise internal arithmetic units, registers, cachememory, busses, I/O ports, etc., as is well known in the art.

In FIG. 2, the memory controller hub 226 interfaces with memory 240 (forexample, to provide support for a type of RAM that may be referred to as“system memory” or “memory”). The memory controller hub 226 furtherincludes a low voltage differential signaling (LVDS) interface 232 for adisplay device 292 (for example, a CRT, a flat panel, touch screen,etc.). A block 238 includes some technologies that may be supported viathe LVDS interface 232 (for example, serial digital video, HDMI/DVI,display port). The memory controller hub 226 also includes a PCI-expressinterface (PCI-E) 234 that may support discrete graphics 236.

In FIG. 2, the I/O hub controller 250 includes a SATA interface 251 (forexample, for HDDs, SDDs, etc., 280), a PCI-E interface 252 (for example,for wireless connections 282), a USB interface 253 (for example, fordevices 284 such as a digitizer, keyboard, mice, cameras, phones,microphones, storage, other connected devices, etc.), a networkinterface 254 (for example, LAN), a GPIO interface 255, a LPC interface270 (for ASICs 271, a TPM 272, a super I/O 273, a firmware hub 274, BIOSsupport 275 as well as various types of memory 276 such as ROM 277,Flash 278, and NVRAM 279), a power management interface 261, a clockgenerator interface 262, an audio interface 263 (for example, forspeakers 294), a TCO interface 264, a system management bus interface265, and SPI Flash 266, which can include BIOS 268 and boot code 290.The I/O hub controller 250 may include gigabit Ethernet support.

The system, upon power on, may be configured to execute boot code 290for the BIOS 268, as stored within the SPI Flash 266, and thereafterprocesses data under the control of one or more operating systems andapplication software (for example, stored in system memory 240). Anoperating system may be stored in any of a variety of locations andaccessed, for example, according to instructions of the BIOS 268. Asdescribed herein, a device may include fewer or more features than shownin the system of FIG. 2.

Information handling device circuitry, as for example outlined in FIG. 1or FIG. 2, may be used in devices such as laptops, desktops, tablets,smart phones, personal computer devices generally, and/or electronicdevices that may experience a change in the system and thus a change inpower consumption of the system. Accordingly, an embodiment implements adevice monitor that tracks system power usage metrics, as describedherein, as well as changes which the system has undergone. By virtue ofsuch monitoring program, an embodiment has access to data, e.g., systempower usage data and system change data, with which changes in powerusage may be associated with specific system changes. As such, anembodiment is capable of notifying the user regarding the likely causeof the power usage change and may additionally suggest or automaticallyimplement changes to remedy the same.

Turning to FIG. 3, an example method of system power monitoring andoptimization is illustrated. As illustrated in FIG. 3, an embodimentobtains, from a monitoring program (e.g., implemented as a stand aloneapplication, integrated with an operating system or device softwareprogram, implemented on a system I/O chip or hub controller 250 of FIG.2, or as a remote or distributed application) a system power consumptionmetric at 301. By way of non-limiting example, a monitoring program maymonitor the power an application takes to run. A monitoring program mayrepeat this process over time such that an embodiment may determine achange in the system power consumption metric over time, as illustratedat 302. By way of example, an application's power consumption mayincrease over time, e.g., due to a changed setting, the concurrentrunning of a new application, an over the air update, etc. If no suchpower consumption metric change is determined, an embodiment maycontinue to monitor for the same.

An embodiment may also obtain, e.g., from the monitoring program, systemchange data at 303. For example, a monitoring program may record anychanges that were made (by the user or otherwise, e.g., via automaticupdate) to the application for which power consumption has beenrecorded. An example of system change data is data indicating that anapplication setting has been switched, along with a time-stamp. Thissystem change data may be time-stamped or otherwise have timinginformation associated therewith.

Having system power consumption metrics, system change data, and anindication that system power consumption has changed over time (e.g.,increased in that the application is taking more energy to operate), anembodiment may associate the change in the system power consumptionmetric and the system change data, as illustrated at 304. By way ofexample, an embodiment may correlate or associate the system change ofan application setting change with an increase in system powerconsumption, in this example an application taking more power tooperate.

Having made such an association, an embodiment may thereafter indicate,e.g., to the user using an output device, a system change associatedwith the change in the system power consumption metric, as illustratedat 305. By way of example, a message may be displayed or otherwisecommunicated to the user indicating that the system power consumptionhas increased for a particular application and that a particular settingis associated with that change, e.g., associated in time. This apprisesthe user of the suspected cause of the increase in power consumption andprovides the user with guidance as to how to resolve the issue.

An embodiment may offer a recommendation to improve the change in systempower consumption. For example, an embodiment may indicate a differentsetting that resolves the power consumption issue in question. By way ofexample, an application that is taking more power to operate may have asetting that has been switched to a sub-optimal value, and an embodimentmay thus recommend to the user that the setting should be switched backor adjusted for the application. An embodiment may provide in theindication a link or executable element that leads the user to theappropriate settings menu to implement the recommended change.Furthermore, an embodiment may automatically implement a system changeto improve the change in system power consumption, e.g., automaticallychange the application's setting or do so after user confirmation of thesame.

As has been described herein, the monitoring program may be resident onthe user's device; however, this is not a requirement. For example, themonitoring program may be distributed across more than one device.Furthermore, the monitoring program's data may be stored in a variety oflocations, e.g., the system change data may be derived from a remotedevice. This allows, for example, pooling of system power consumptiondata and/or system change data, e.g., the system change data may relateto a plurality of like platforms. A platform may be alike if thesoftware is similar, the hardware is similar, or the system is similar.As may be appreciated, if relevant data is available from other systems,an embodiment may indicate to or warn the user of a potential impact ofmaking a system change, i.e., as it relates to power consumption. Thus,the indication of the association between a system change and systempower consumption may occur prior to the determining of a system powerconsumption change for a particular device.

The various embodiments described herein thus represent a technicalimprovement to the management of system power consumption. By way ofspecific example, an embodiment implements a new monitoring capabilitythat in turn generates new and useful data that may be leveraged notonly to highlight potential system changes that impact system powerconsumption, but moreover to make specific and tailored recommendationsregarding the resolution or avoidance of the same.

As will be appreciated by one skilled in the art, various aspects may beembodied as a system, method or device program product. Accordingly,aspects may take the form of an entirely hardware embodiment or anembodiment including software that may all generally be referred toherein as a “circuit,” “module” or “system.” Furthermore, aspects maytake the form of a device program product embodied in one or more devicereadable medium(s) having device readable program code embodiedtherewith.

It should be noted that the various functions described herein may beimplemented using instructions stored on a device readable storagemedium such as a non-signal storage device that are executed by aprocessor. A storage device may be, for example, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples of a storage medium would include the following: aportable computer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), an optical fiber, a portable compact disc read-onlymemory (CD-ROM), an optical storage device, a magnetic storage device,or any suitable combination of the foregoing. In the context of thisdocument, a storage device is not a signal and “non-transitory” includesall media except signal media.

Program code embodied on a storage medium may be transmitted using anyappropriate medium, including but not limited to wireless, wireline,optical fiber cable, RF, et cetera, or any suitable combination of theforegoing.

Program code for carrying out operations may be written in anycombination of one or more programming languages. The program code mayexecute entirely on a single device, partly on a single device, as astand-alone software package, partly on single device and partly onanother device, or entirely on the other device. In some cases, thedevices may be connected through any type of connection or network,including a local area network (LAN) or a wide area network (WAN), orthe connection may be made through other devices (for example, throughthe Internet using an Internet Service Provider), through wirelessconnections, e.g., near-field communication, or through a hard wireconnection, such as over a USB connection.

Example embodiments are described herein with reference to the figures,which illustrate example methods, devices and program products accordingto various example embodiments. It will be understood that the actionsand functionality may be implemented at least in part by programinstructions. These program instructions may be provided to a processorof a device, a special purpose information handling device, or otherprogrammable data processing device to produce a machine, such that theinstructions, which execute via a processor of the device implement thefunctions/acts specified.

It is worth noting that while specific blocks are used in the figures,and a particular ordering of blocks has been illustrated, these arenon-limiting examples. In certain contexts, two or more blocks may becombined, a block may be split into two or more blocks, or certainblocks may be re-ordered or re-organized as appropriate, as the explicitillustrated examples are used only for descriptive purposes and are notto be construed as limiting.

As used herein, the singular “a” and “an” may be construed as includingthe plural “one or more” unless clearly indicated otherwise.

This disclosure has been presented for purposes of illustration anddescription but is not intended to be exhaustive or limiting. Manymodifications and variations will be apparent to those of ordinary skillin the art. The example embodiments were chosen and described in orderto explain principles and practical application, and to enable others ofordinary skill in the art to understand the disclosure for variousembodiments with various modifications as are suited to the particularuse contemplated.

Thus, although illustrative example embodiments have been describedherein with reference to the accompanying figures, it is to beunderstood that this description is not limiting and that various otherchanges and modifications may be affected therein by one skilled in theart without departing from the scope or spirit of the disclosure.

What is claimed is:
 1. A method, comprising: identifying, over a timeperiod, using a processor, a change in a system power consumption metricindicating a value of power consumed by a system, wherein the systemcorresponds to at least one of: a single information handling device anda sub-system of the single information handling device, wherein theidentifying a change comprises monitoring an application of the singleinformation handling device while the application is running over thetime period and determining that the system performing an operationwithin the application has a higher power usage at an end of the timeperiod, and after a change to the system has occurred, as compared to aprior power usage of the system performing the operation at a beginningof the time period; obtaining, using a processor, system change dataidentifying a plurality of changes to the system that have occurredsince the beginning of the time period corresponding to the prior powerusage of the system; associating, using a processor, the change in thesystem power consumption metric and the system change data, wherein theassociating comprises identifying one of the plurality of changes to thesystem resulting in the change in the system power consumption metric;indicating, using an output device, a system change associated with thechange in the system power consumption metric and a recommendation forimproving the system power consumption, wherein the recommendation isbased upon identifying a modification to be made to the system toimprove the system change and that is related to the identified one ofthe plurality of changes that resulted in the change; and implementingthe recommendation to improve the change in system power consumption. 2.The method of claim 1, wherein the implemented change to the system isassociated with the system change data.
 3. The method of claim 1,wherein the identifying is performed by a monitoring program distributedacross more than one device.
 4. The method of claim 1, wherein thesystem change data is derived from a remote device.
 5. The method ofclaim 1, wherein the system change data relates to a plurality of likeplatforms.
 6. The method of claim 5, wherein the indicating occurs priorto the determining for a particular device.
 7. The method of claim 1,wherein the system power consumption metric is selected from the groupconsisting of operating system (OS) power consumption, application powerconsumption, and hardware power consumption.
 8. The method of claim 1,wherein the associating comprises associating a pattern of powerconsumption metrics with a plurality of applications.
 9. A device,comprising: a processor; a memory device that stores instructionsexecutable by the processor to: identify, over time, a change in asystem power consumption metric indicating a value of power consumed bya system, wherein the system corresponds to at least one of a singleinformation handling device and a sub-system of the single informationhandling device, wherein the identifying a change comprises monitoringan application of the single information handling device while theapplication is running over the time period and determining that thesystem performing an operation within the application has a higher powerusage at an end of the time period, and after a change to the system hasoccurred, as compared to a prior power usage of the system performingthe operation at a beginning of the time period; obtain system changedata identifying a plurality of changes to the system that have occurredsince the beginning of the time period corresponding to the prior powerusage of the system; associate the change in the system powerconsumption metric and the system change data, wherein the instructionsexecutable by the processor to associate comprise instructionsexecutable by the processor to identify one of the plurality of changesto the system resulting in the change in the system power consumptionmetric; indicate a system change associated with the change in thesystem power consumption metric and a recommendation for improving thesystem performance, wherein the recommendation is based upon identifyinga modification to be made to the system to improve the system change andthat is related to the identified one of the plurality of changes thatresulted in the change; and implement the recommendation to improve thechange in system power consumption.
 10. The device of claim 9, whereinthe implemented change to the system is associated with the systemchange data.
 11. The device of claim 9, wherein the system powerconsumption metric is obtained using a monitoring program distributedacross more than one device.
 12. The device of claim 9, wherein thesystem change data is derived from a remote device.
 13. The device ofclaim 9, wherein the system change data relates to a plurality of likeplatforms.
 14. The device of claim 13, wherein a system change isindicated prior to determining a change in system power consumption forthe device.
 15. The device of claim 9, wherein the system powerconsumption metric is selected from the group consisting of operatingsystem (OS) power consumption, application power consumption, andhardware power consumption.
 16. A product, comprising: a storage devicehaving code stored therewith, the code being executable by a processorand comprising: code that identifies, over time, a change in a systempower consumption metric indicating a value of power consumed by asystem, wherein the system corresponds to at least one of a singleinformation handling device and a sub-system of the single informationhandling device, wherein the identifying a change comprises monitoringan application of the single information handling device while theapplication is running over the time period and determining that thesystem performing an operation within the application has a higher powerusage at an end of the time period, and after a change to the system hasoccurred, as compared to a prior power usage of the system performingthe operation at a beginning of the time period; code that obtainssystem change data identifying a plurality of changes to the system thathave occurred since the beginning of the time period corresponding tothe prior power usage of the system; code that associates the change inthe system power consumption metric and the system change data, whereinthe code that associates comprises code that identifies one of theplurality of changes to the system resulting in the change in the systempower consumption metric; code that indicates a system change associatedwith the change in the system power consumption metric and arecommendation for improving the system performance, wherein therecommendation is based upon identifying a modification to be made tothe system to improve the system change and that is related to theidentified one of the plurality of changes that resulted in the change;and code that implements the recommendation to improve the change insystem power consumption.